package com.petdog.module.report.service;

import com.petdog.common.dto.PageResult;
import com.petdog.infrastructure.entity.Report;
import com.petdog.module.report.dto.ReportProcessRequest;
import com.petdog.module.report.dto.ReportRequest;
import com.petdog.module.report.dto.ReportDto;

/**
 * 举报服务接口
 */
public interface ReportService {
    
    /**
     * 提交举报
     */
    Long submitReport(ReportRequest request, Long reporterId);
    
    /**
     * 获取举报详情
     */
    ReportDto getReportById(Long reportId);
    
    /**
     * 分页查询举报列表
     */
    PageResult<ReportDto> getReportList(Integer pageNum, Integer pageSize, Long reporterId, Integer contentType, Long contentId, Integer reportType, Integer status);
    
    /**
     * 处理举报
     */
    boolean processReport(ReportProcessRequest request, Long processorId);
    
    /**
     * 统计举报数量
     */
    long countReports(Integer status);
    
    /**
     * 获取指定内容的举报数量
     */
    int getReportCountByContent(Integer contentType, Long contentId, Integer status);
}